//水果成蓝问题；
//实例1；
//输入：fruits=[1,2,1] 输出；3；
//实例2：
//输入：fruits=[0,1,2,2] 输出：3；
public class NM1 {
    public  static int fun(int[] fruits) {
        int ret = 0;//返回结果的变量；
        int n=fruits.length;
        //1.通过哈希表进行统计水果的种类以及每个水果的个数
        int[] hash=new int[n+1];
        for(int left=0,right=0,kinds=0;right<n;right++){
            //进窗口；
            int in=fruits[right];
            if(hash[in]==0){
                kinds++;
            }
            hash[in]++;
            //判断；
            while(kinds>2){
                //出窗口；
                int out=fruits[left];
                hash[out]--;
                if(hash[out]==0){
                    kinds--;
                }
                left++;
            }
            ret=Math.max(ret,right-left+1);//进行更新结果；

        }
        return ret;//进行结果返回的设置；
    }
    public static void main(String[] args){
        int[] fruits={0,1,2,2};
        int ret=fun(fruits);
        System.out.println(ret);
    }
}
